A keyboard controller is a microprocessor whose primary function is to wait for, and report on, keystrokes on the keyboard. It is advantageous to dedicate a microprocessor to the keyboard since this reduces the number of tasks performed by the computer's primary microprocessor and can substantially increase its efficiency. Traditionally, the keyboard controller also generates system management interrupts (SMI's) to notify the basic input/output system (BIOS) of power management events such as the thermal conditions of the motherboard, the amount of charge on the battery, or hot keys functions. Hot key functions are one- or two-keystroke commands that switch a user to a different program, typically a program to perform a power management or configuration function that is loaded into memory at boot-up and is ready and waiting for use. And it is important to note that traditionally power management and configuration functions are performed without participation by the operating system--the BIOS processes the event, makes the needed changes and then returns control to the operating system.
An advanced power management standard, termed the "Advanced Configuration Power Interface" (ACPI), has been jointly proposed by Intel Corporation of Santa Clara, Calif., Microsoft Corporation of Redmond, Wash., and Toshiba Corporation of Tokyo, Japan. According to the ACPI specification, the operating system rather than the BIOS controls power management, thermal states, and plug-and-play functionality (wherein enumeration and configuration of motherboard devices is performed by the operating system) of the computer. This allows the operating system to evolve independently from the hardware, so that ACPI-compatible computers can gain the benefits of improvements and innovations in the operating system. Furthermore, this allows the hardware to evolve independently from the operating system, thereby decoupling hardware and operating system cycles. Incorporated herein by reference in its entirety is the ACPI specification, a current draft of which can be found on the world wide web at www.teleport.com/.about.acpi/.
An embedded controller interface can define and control communications between an operating system driver and one or more embedded controllers, where at least one embedded controller is dedicated to power management and configuration events. Typical keyboard interface conventions are described in "IBM Personal System/2 Hardware Interface Technical Reference, Keyboard and Auxiliary Device Controller (Type 1) (IBM Pub. N.00F9809)" which is also incorporated herein by reference in its entirety. FIG. 1A depicts the standard interrelations between the operating system 10, keyboard controller 12, power management embedded controller 18, mouse 13 and keyboard 14. Keystrokes, mouse movements and hot key depressions at the mouse 13 or keyboard 14 are forwarded to the keyboard controller 12, and commands controlling the LED's on the keyboard 14 are forwarded from the keyboard controller 12 to the keyboard. Those tasks which are not related to power management or configuration events are forwarded via a keyboard controller interface 11 directly to the operating system 10. However, power management and configuration events are detected by the keyboard controller 12 and reported to the power management embedded controller 18 via an interconnecting serial interface channel 19. The power management embedded controller 18 accumulates all events and reports them to the operating system 10 via an embedded controller bus 17, or to an SMI handler (not shown) if the platform is not ACPI-compatible. However, this implementation has the drawbacks that an additional embedded controller 18 and additional wiring 17 and 19 is required, and support for the communications channels 17 and 19 must be supplied. As a result this approach increases cost, size, complexity and power consumption, and decreases the reliability of the system. However, it is important to understand that whatever means are used to handle power management and configuration functions, the functionality of the mouse 13 and keyboard 14 must not be compromised to the extent that delays or dropouts are perceptible to the end user.
Therefore it is an object of the present invention to provide a means compatible with legacy systems and ACPI systems for handling power management and/or configuration functions.
Furthermore, it is an object of the present invention to provide a means for handling power management and/or configuration functions with a minimum of cost, size, and/or complexity.
It is another object of the present invention to provide a means for handling keyboard functions and power management/configuration events without end user-perceptible compromise of keyboard functionality.
It is another object of the present invention to provide means for combining the functionality of two universal microcontrollers into one universal microcontroller, while providing priority to the handling of one set of functions.
Further objects and advantages of the present invention will become apparent from a consideration of the drawings and the ensuing detailed description.